﻿using System;
using System.Linq;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.ComponentModel;
using System.Runtime.CompilerServices;
using Windows.ApplicationModel.Resources.Core;
using Windows.Foundation;
using Windows.Foundation.Collections;
using Windows.UI.Xaml.Data;
using Windows.UI.Xaml.Media;
using Windows.UI.Xaml.Media.Imaging;
using System.Collections.Specialized;

// The data model defined by this file serves as a representative example of a strongly-typed
// model that supports notification when members are added, removed, or modified.  The property
// names chosen coincide with data bindings in the standard item templates.
//
// Applications may use this model as a starting point and build on it, or discard it entirely and
// replace it with something appropriate to their needs.

namespace ColorBlindCheckBook.Data
{
    /// <summary>
    /// Base class for <see cref="SampleDataItem"/> and <see cref="SampleDataGroup"/> that
    /// defines properties common to both.
    /// </summary>
    [Windows.Foundation.Metadata.WebHostHidden]
    public abstract class SampleDataCommon : ColorBlindCheckBook.Common.BindableBase
    {
        private static Uri _baseUri = new Uri("ms-appx:///");

        public SampleDataCommon(String uniqueId, String title, String subtitle, String imagePath, String description)
        {
            this._uniqueId = uniqueId;
            this._title = title;
            this._subtitle = subtitle;
            this._description = description;
            this._imagePath = imagePath;
        }

        private string _uniqueId = string.Empty;
        public string UniqueId
        {
            get { return this._uniqueId; }
            set { this.SetProperty(ref this._uniqueId, value); }
        }

        private string _title = string.Empty;
        public string Title
        {
            get { return this._title; }
            set { this.SetProperty(ref this._title, value); }
        }

        private string _subtitle = string.Empty;
        public string Subtitle
        {
            get { return this._subtitle; }
            set { this.SetProperty(ref this._subtitle, value); }
        }

        private string _description = string.Empty;
        public string Description
        {
            get { return this._description; }
            set { this.SetProperty(ref this._description, value); }
        }

        private ImageSource _image = null;
        private String _imagePath = null;
        public ImageSource Image
        {
            get
            {
                if (this._image == null && this._imagePath != null)
                {
                    this._image = new BitmapImage(new Uri(SampleDataCommon._baseUri, this._imagePath));
                }
                return this._image;
            }

            set
            {
                this._imagePath = null;
                this.SetProperty(ref this._image, value);
            }
        }

        public void SetImage(String path)
        {
            this._image = null;
            this._imagePath = path;
            this.OnPropertyChanged("Image");
        }

        public override string ToString()
        {
            return this.Title;
        }
    }

    /// <summary>
    /// Generic item data model.
    /// </summary>
    public class SampleDataItem : SampleDataCommon
    {
        public SampleDataItem(String uniqueId, String title, String subtitle, String imagePath, String description, String content, SampleDataGroup group)
            : base(uniqueId, title, subtitle, imagePath, description)
        {
            this._content = content;
            this._group = group;
        }

        private string _content = string.Empty;
        public string Content
        {
            get { return this._content; }
            set { this.SetProperty(ref this._content, value); }
        }

        private SampleDataGroup _group;
        public SampleDataGroup Group
        {
            get { return this._group; }
            set { this.SetProperty(ref this._group, value); }
        }
    }

    /// <summary>
    /// Generic group data model.
    /// </summary>
    public class SampleDataGroup : SampleDataCommon
    {
        public SampleDataGroup(String uniqueId, String title, String subtitle, String imagePath, String description)
            : base(uniqueId, title, subtitle, imagePath, description)
        {
            Items.CollectionChanged += ItemsCollectionChanged;
        }

        private void ItemsCollectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e)
        {
            // Provides a subset of the full items collection to bind to from a GroupedItemsPage
            // for two reasons: GridView will not virtualize large items collections, and it
            // improves the user experience when browsing through groups with large numbers of
            // items.
            //
            // A maximum of 12 items are displayed because it results in filled grid columns
            // whether there are 1, 2, 3, 4, or 6 rows displayed

            switch (e.Action)
            {
                case NotifyCollectionChangedAction.Add:
                    if (e.NewStartingIndex < 50)
                    {
                        TopItems.Insert(e.NewStartingIndex, Items[e.NewStartingIndex]);
                        if (TopItems.Count > 50)
                        {
                            TopItems.RemoveAt(50);
                        }
                    }
                    break;
                case NotifyCollectionChangedAction.Move:
                    if (e.OldStartingIndex < 50 && e.NewStartingIndex < 50)
                    {
                        TopItems.Move(e.OldStartingIndex, e.NewStartingIndex);
                    }
                    else if (e.OldStartingIndex < 50)
                    {
                        TopItems.RemoveAt(e.OldStartingIndex);
                        TopItems.Add(Items[49]);
                    }
                    else if (e.NewStartingIndex < 50)
                    {
                        TopItems.Insert(e.NewStartingIndex, Items[e.NewStartingIndex]);
                        TopItems.RemoveAt(50);
                    }
                    break;
                case NotifyCollectionChangedAction.Remove:
                    if (e.OldStartingIndex < 50)
                    {
                        TopItems.RemoveAt(e.OldStartingIndex);
                        if (Items.Count >= 50)
                        {
                            TopItems.Add(Items[49]);
                        }
                    }
                    break;
                case NotifyCollectionChangedAction.Replace:
                    if (e.OldStartingIndex < 50)
                    {
                        TopItems[e.OldStartingIndex] = Items[e.OldStartingIndex];
                    }
                    break;
                case NotifyCollectionChangedAction.Reset:
                    TopItems.Clear();
                    while (TopItems.Count < Items.Count && TopItems.Count < 50)
                    {
                        TopItems.Add(Items[TopItems.Count]);
                    }
                    break;
            }
        }

        private ObservableCollection<SampleDataItem> _items = new ObservableCollection<SampleDataItem>();
        public ObservableCollection<SampleDataItem> Items
        {
            get { return this._items; }
        }

        private ObservableCollection<SampleDataItem> _topItem = new ObservableCollection<SampleDataItem>();
        public ObservableCollection<SampleDataItem> TopItems
        {
            get { return this._topItem; }
        }
    }

    /// <summary>
    /// Creates a collection of groups and items with hard-coded content.
    /// 
    /// SampleDataSource initializes with placeholder data rather than live production
    /// data so that sample data is provided at both design-time and run-time.
    /// </summary>
    public sealed class SampleDataSource
    {
        private static SampleDataSource _sampleDataSource = new SampleDataSource();

        private ObservableCollection<SampleDataGroup> _allGroups = new ObservableCollection<SampleDataGroup>();
        public ObservableCollection<SampleDataGroup> AllGroups
        {
            get { return this._allGroups; }
        }

        public static IEnumerable<SampleDataGroup> GetGroups(string uniqueId)
        {
            if (!uniqueId.Equals("AllGroups")) throw new ArgumentException("Only 'AllGroups' is supported as a collection of groups");

            return _sampleDataSource.AllGroups;
        }

        public static SampleDataGroup GetGroup(string uniqueId)
        {
            // Simple linear search is acceptable for small data sets
            var matches = _sampleDataSource.AllGroups.Where((group) => group.UniqueId.Equals(uniqueId));
            if (matches.Count() == 1) return matches.First();
            return null;
        }

        public static SampleDataItem GetItem(string uniqueId)
        {
            // Simple linear search is acceptable for small data sets
            var matches = _sampleDataSource.AllGroups.SelectMany(group => group.Items).Where((item) => item.UniqueId.Equals(uniqueId));
            if (matches.Count() == 1) return matches.First();
            return null;
        }

        public SampleDataSource()
        {
            String ITEM_CONTENT = String.Format("Item Content: {0}\n\n{0}\n\n{0}\n\n{0}\n\n{0}\n\n{0}\n\n{0}",
                        "Curabitur class aliquam vestibulum nam curae maecenas sed integer cras phasellus suspendisse quisque donec dis praesent accumsan bibendum pellentesque condimentum adipiscing etiam consequat vivamus dictumst aliquam duis convallis scelerisque est parturient ullamcorper aliquet fusce suspendisse nunc hac eleifend amet blandit facilisi condimentum commodo scelerisque faucibus aenean ullamcorper ante mauris dignissim consectetuer nullam lorem vestibulum habitant conubia elementum pellentesque morbi facilisis arcu sollicitudin diam cubilia aptent vestibulum auctor eget dapibus pellentesque inceptos leo egestas interdum nulla consectetuer suspendisse adipiscing pellentesque proin lobortis sollicitudin augue elit mus congue fermentum parturient fringilla euismod feugiat");

            #region 阿拉伯数字组
            var group1 = new SampleDataGroup("number",
                    "阿拉伯数字组",
                    "Group Subtitle: 1",
                    "Assets/DarkGray.png",
                    "Group Description: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus tempor scelerisque lorem in vehicula. Aliquam tincidunt, lacus ut sagittis tristique, turpis massa volutpat augue, eu rutrum ligula ante a ante");
            group1.Items.Add(new SampleDataItem("Group-1-Item-1",
                    "图 1",
                    "示教图",
                    "Assets/LightGray.png",
                    "正常：6，  异常：6",
                    "Assets/number-1.png",
                    group1));
            group1.Items.Add(new SampleDataItem("Group-1-Item-2",
                    "图 2",
                    "",
                    "Assets/DarkGray.png",
                    "正常：99，  红绿色觉异常：0  （正常者也可读0，异常者只能读0）",
                    "Assets/number-2.png",
                    group1));
            group1.Items.Add(new SampleDataItem("Group-1-Item-3",
                    "图 3",
                    "大概区分红绿色盲和红绿色弱",
                    "Assets/MediumGray.png",
                    "正常：8 9 6，  红绿色盲、重度色弱：不能读，  红绿色弱中度：8，  红绿色弱轻度：8 9",
                    "Assets/number-3.png",
                    group1));
            group1.Items.Add(new SampleDataItem("Group-1-Item-4",
                    "图 4",
                    "初步区分红、绿、蓝（紫）色觉异常",
                    "Assets/DarkGray.png",
                    "正常：6 9 8，  红绿色觉异常：8，  红色觉异常：6 8，  绿色觉异常：9 8，  蓝（紫）色觉异常：6 9",
                    "Assets/number-4.png",
                    group1));
            group1.Items.Add(new SampleDataItem("Group-1-Item-5",
                    "图 5",
                    "区分红、绿色觉异常",
                    "Assets/MediumGray.png",
                    "正常：80 96，  红绿色觉异常：不能读，  红色觉异常：80，  绿色觉异常：96",
                    "Assets/number-5.png",
                    group1));
            group1.Items.Add(new SampleDataItem("Group-1-Item-6",
        "图 6",
        "检出红绿色盲",
        "Assets/MediumGray.png",
        "正常：66，  红绿色盲：不能读",
        "Assets/number-6.png",
        group1));
            group1.Items.Add(new SampleDataItem("Group-1-Item-7",
"图 7",
"检出红色盲",
"Assets/LightGray.png",
"正常：36，  红色盲：不能读",
"Assets/number-7.png",
group1));
            group1.Items.Add(new SampleDataItem("Group-1-Item-8",
"图 8",
"检出绿色盲",
"Assets/LightGray.png",
"正常：85，  绿色盲：不能读",
"Assets/number-8.png",
group1));
            group1.Items.Add(new SampleDataItem("Group-1-Item-9",
"图 9",
"红色盲检出总图",
"Assets/MediumGray.png",
"正常：8 0 6，  红色盲：不能读",
"Assets/number-9.png",
group1));
            group1.Items.Add(new SampleDataItem("Group-1-Item-10",
"图 10",
"",
"Assets/DarkGray.png",
"正常：5，  红色盲：不能读  （图10、11、12 三图有两图不能读者为红色盲，有两图能读者继续向下查色弱图）",
"Assets/number-10.png",
group1));
            group1.Items.Add(new SampleDataItem("Group-1-Item-11",
"图 11",
"",
"Assets/DarkGray.png",
"正常：9，  红色盲：不能读  （图10、11、12 三图有两图不能读者为红色盲，有两图能读者继续向下查色弱图）",
"Assets/number-11.png",
group1));
            group1.Items.Add(new SampleDataItem("Group-1-Item-12",
"图 12",
"",
"Assets/LightGray.png",
"正常：8，  红色盲：不能读  （图10、11、12 三图有两图不能读者为红色盲，有两图能读者继续向下查色弱图）",
"Assets/number-12.png",
group1));
            group1.Items.Add(new SampleDataItem("Group-1-Item-13",
"图 13",
"绿色盲检查总图",
"Assets/MediumGray.png",
"正常：6 8 9，  绿色盲：不能读",
"Assets/number-13.png",
group1));
            group1.Items.Add(new SampleDataItem("Group-1-Item-14",
"图 14",
"",
"Assets/LightGray.png",
"正常：5，  绿色盲：不能读  （图14、15、16 三图有两图不能读者为绿色盲，有两图能读者继续向下查色弱图）",
"Assets/number-14.png",
group1));
            group1.Items.Add(new SampleDataItem("Group-1-Item-15",
"图 15",
"",
"Assets/LightGray.png",
"正常：8，  绿色盲：不能读  （图14、15、16 三图有两图不能读者为绿色盲，有两图能读者继续向下查色弱图）",
"Assets/number-15.png",
group1));
            group1.Items.Add(new SampleDataItem("Group-1-Item-16",
"图 16",
"",
"Assets/LightGray.png",
"正常：6，  绿色盲：不能读  （图14、15、16 三图有两图不能读者为绿色盲，有两图能读者继续向下查色弱图）",
"Assets/number-16.png",
group1));
            group1.Items.Add(new SampleDataItem("Group-1-Item-17",
"图 17",
"红色弱分类总图",
"Assets/DarkGray.png",
"正常：8 3 5，  红色弱：全不能读或部分不能读",
"Assets/number-17.png",
group1));
            group1.Items.Add(new SampleDataItem("Group-1-Item-18",
"图 18",
"检出红色弱重、中、轻三度",
"Assets/LightGray.png",
"正常：3，  红色弱重度：不能读",
"Assets/number-18.png",
group1));
            group1.Items.Add(new SampleDataItem("Group-1-Item-19",
"图 19",
"检出红色弱重、中、轻三度",
"Assets/MediumGray.png",
"正常：5，  红色弱中度：不能读",
"Assets/number-19.png",
group1));
            group1.Items.Add(new SampleDataItem("Group-1-Item-20",
"图 20",
"检出红色弱重、中、轻三度",
"Assets/DarkGray.png",
"正常：8，  红色弱轻度：不能读",
"Assets/number-20.png",
group1));
            group1.Items.Add(new SampleDataItem("Group-1-Item-21",
"图 21",
"绿色弱分类总图",
"Assets/LightGray.png",
"正常：6 5 2，  绿色弱：全不能读或部分不能读",
"Assets/number-21.png",
group1));
            group1.Items.Add(new SampleDataItem("Group-1-Item-22",
"图 22",
"检出绿色弱重、中、轻三度",
"Assets/MediumGray.png",
"正常：8，  绿色弱重度：不能读",
"Assets/number-22.png",
group1));
            group1.Items.Add(new SampleDataItem("Group-1-Item-23",
"图 23",
"检出绿色弱重、中、轻三度",
"Assets/MediumGray.png",
"正常：9，  绿色弱中度：不能读",
"Assets/number-23.png",
group1));
            group1.Items.Add(new SampleDataItem("Group-1-Item-24",
"图 24",
"检出绿色弱重、中、轻三度",
"Assets/LightGray.png",
"正常：5，  绿色弱轻度：不能读",
"Assets/number-24.png",
group1));
            group1.Items.Add(new SampleDataItem("Group-1-Item-25",
"图 25",
"检出紫色盲",
"Assets/MediumGray.png",
"正常：83，  紫色盲：不能读",
"Assets/number-25.png",
group1));

            group1.Items.Add(new SampleDataItem("Group-1-Item-26",
"图 26",
"蓝（紫）色盲检查图",
"Assets/DarkGray.png",
"正常：6，  蓝（紫）色盲：不能读",
"Assets/number-26.png",
group1));
            group1.Items.Add(new SampleDataItem("Group-1-Item-27",
"图 27",
"检出蓝（紫）色弱重、中、轻三度",
"Assets/LightGray.png",
"正常：3，  蓝（紫）色弱重度：不能读",
"Assets/number-27.png",
group1));
            group1.Items.Add(new SampleDataItem("Group-1-Item-28",
"图 28",
"检出蓝（紫）色弱重、中、轻三度",
"Assets/LightGray.png",
"正常：5，  蓝（紫）色弱中度：不能读",
"Assets/number-28.png",
group1));
            group1.Items.Add(new SampleDataItem("Group-1-Item-29",
"图 29",
"检出蓝（紫）色弱重、中、轻三度",
"Assets/MediumGray.png",
"正常：8，  蓝（紫）色弱轻度：不能读",
"Assets/number-29.png",
group1));
            group1.Items.Add(new SampleDataItem("Group-1-Item-30",
"图 30",
"检出黄色盲",
"Assets/DarkGray.png",
"正常：56，  黄色盲：不能读",
"Assets/number-30.png",
group1));
            group1.Items.Add(new SampleDataItem("Group-1-Item-31",
"图 31",
"检出黄色盲",
"Assets/DarkGray.png",
"正常：6，  黄色盲：不能读",
"Assets/number-31.png",
group1));
            group1.Items.Add(new SampleDataItem("Group-1-Item-32",
"图 32",
"检出黄色弱",
"Assets/MediumGray.png",
"正常：2，  黄色弱重度：不能读",
"Assets/number-32.png",
group1));
            group1.Items.Add(new SampleDataItem("Group-1-Item-33",
"图 33",
"检出黄色弱",
"Assets/MediumGray.png",
"正常：4，  黄色弱中度：不能读",
"Assets/number-33.png",
group1));
            group1.Items.Add(new SampleDataItem("Group-1-Item-34",
"图 34",
"检出黄色弱",
"Assets/MediumGray.png",
"正常：9，  黄色弱轻度：不能读",
"Assets/number-34.png",
group1));
            group1.Items.Add(new SampleDataItem("Group-1-Item-35",
"图 35",
"鉴别色觉疲劳和隐色盲",
"Assets/DarkGray.png",
"正常：2，  色觉疲劳：开始能读、后又否定，  隐色盲：开始不能读、后可能读",
"Assets/number-35.png",
group1));
            group1.Items.Add(new SampleDataItem("Group-1-Item-36",
"图 36",
"鉴别色觉疲劳和隐色盲",
"Assets/LightGray.png",
"正常：10，  色觉疲劳：开始能读、后又否定，  隐色盲：开始不能读、后可能读",
"Assets/number-36.png",
group1));
            group1.Items.Add(new SampleDataItem("Group-1-Item-37",
"图 37",
"鉴别色觉疲劳和隐色盲",
"Assets/LightGray.png",
"正常：5，  色觉疲劳：开始能读、后又否定，  隐色盲：开始不能读、后可能读",
"Assets/number-37.png",
group1));
            group1.Items.Add(new SampleDataItem("Group-1-Item-38",
"图 38",
"鉴别色觉疲劳和隐色盲",
"Assets/DarkGray.png",
"正常：3，  色觉疲劳：开始能读、后又否定，  隐色盲：开始不能读、后可能读",
"Assets/number-38.png",
group1));
            this.AllGroups.Add(group1);
            #endregion

            #region 拉丁字母组
            var group2 = new SampleDataGroup("alphabet",
                    "拉丁字母组",
                    "Group Subtitle: 2",
                    "Assets/LightGray.png",
                    "Group Description: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus tempor scelerisque lorem in vehicula. Aliquam tincidunt, lacus ut sagittis tristique, turpis massa volutpat augue, eu rutrum ligula ante a ante");
            group2.Items.Add(new SampleDataItem("Group-2-Item-39",
                    "图 39",
                    "检出红绿色盲和部分红绿色弱",
                    "Assets/DarkGray.png",
                    "正常：RY，  红、绿色觉异常：U，  红色觉异常：Y，  绿色觉异常：R",
                    "Assets/alphabet-39.png",
                    group2));
            group2.Items.Add(new SampleDataItem("Group-2-Item-40",
                    "图 40",
                    "检出红色盲、部分红色弱",
                    "Assets/LightGray.png",
                    "正常：P，  红色觉异常：N",
                    "Assets/alphabet-40.png",
                    group2));
            group2.Items.Add(new SampleDataItem("Group-2-Item-41",
        "图 41",
        "检出绿色盲、部分绿色弱",
        "Assets/DarkGray.png",
        "正常：E，  绿色觉异常：U",
        "Assets/alphabet-41.png",
        group2));
            group2.Items.Add(new SampleDataItem("Group-2-Item-42",
        "图 42",
        "",
        "Assets/MediumGray.png",
        "正常：M，  绿色觉异常：不能读",
        "Assets/alphabet-42.png",
        group2));
            group2.Items.Add(new SampleDataItem("Group-2-Item-43",
"图 43",
"检出红色盲",
"Assets/MediumGray.png",
"正常：B，  红色盲：不能读",
"Assets/alphabet-43.png",
group2));
            group2.Items.Add(
                new SampleDataItem(
                    "Group-2-Item-44",
                    "图 44",
                    "检出绿色盲",
                    "Assets/DarkGray.png",
                    "正常：W，  绿色盲：不能读",
                    "Assets/alphabet-44.png",
                    group2));
            group2.Items.Add(new SampleDataItem("Group-2-Item-45",
"图 45",
"",
"Assets/DarkGray.png",
"正常：A，  红色觉异常：不能读",
"Assets/alphabet-45.png",
group2));
            group2.Items.Add(new SampleDataItem("Group-2-Item-46",
"图 46",
"检出红、绿色盲和部分红、绿色弱",
"Assets/LightGray.png",
"正常：BE，  红、绿色觉异常：S，  红色觉异常：E，  绿色觉异常：B",
"Assets/alphabet-46.png",
group2));
            group2.Items.Add(new SampleDataItem("Group-2-Item-47",
"图 47",
"检出蓝（紫）色盲",
"Assets/MediumGray.png",
"正常：F，  蓝（紫）色觉异常：不能读",
"Assets/alphabet-47.png",
group2));
            group2.Items.Add(new SampleDataItem("Group-2-Item-48",
"图 48",
"检出蓝（紫）色弱",
"Assets/MediumGray.png",
"正常：K，  蓝（紫）色觉异常：不能读",
"Assets/alphabet-48.png",
group2));
            group2.Items.Add(new SampleDataItem("Group-2-Item-49",
"图 49",
"检出黄色盲",
"Assets/DarkGray.png",
"正常：V，  黄色盲：不能读",
"Assets/alphabet-49.png",
group2));
            group2.Items.Add(new SampleDataItem("Group-2-Item-50",
"图 50",
"检出黄色弱",
"Assets/MediumGray.png",
"正常：D，  黄色弱重度：不能读",
"Assets/alphabet-50.png",
group2));
            group2.Items.Add(new SampleDataItem("Group-2-Item-51",
"图 51",
"检出黄色弱",
"Assets/LightGray.png",
"正常：H，  黄色弱轻度：不能读",
"Assets/alphabet-51.png",
group2));
            this.AllGroups.Add(group2);
            #endregion

            #region 动物图案组
            var group3 = new SampleDataGroup("animal",
                    "动物图案组",
                    "Group Subtitle: 3",
                    "Assets/MediumGray.png",
                    "Group Description: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vivamus tempor scelerisque lorem in vehicula. Aliquam tincidunt, lacus ut sagittis tristique, turpis massa volutpat augue, eu rutrum ligula ante a ante");
            group3.Items.Add(new SampleDataItem("Group-3-Item-52",
                    "图 52",
                    "示教图",
                    "Assets/MediumGray.png",
                    "正常：燕子",
                    "Assets/animal-52.png",
                    group3));
            group3.Items.Add(new SampleDataItem("Group-3-Item-53",
                    "图 53",
                    "检出红绿色盲、部分色弱",
                    "Assets/LightGray.png",
                    "正常：兔、鸭子，  红绿色觉异常：鸭子",
                    "Assets/animal-53.png",
                    group3));
            group3.Items.Add(new SampleDataItem("Group-3-Item-54",
        "图 54",
        "检出红绿色盲、部分色弱",
        "Assets/DarkGray.png",
        "正常：马，  红绿色觉异常：羊",
        "Assets/animal-54.png",
        group3));
            group3.Items.Add(new SampleDataItem("Group-3-Item-55",
        "图 55",
        "检出红绿色盲",
        "Assets/LightGray.png",
        "正常：公鸡，  红绿色觉异常：不能读",
        "Assets/animal-55.png",
        group3));
            group3.Items.Add(new SampleDataItem("Group-3-Item-56",
"图 56",
"检出红绿色盲",
"Assets/LightGray.png",
"正常：金鱼，  红绿色觉异常：不能读",
"Assets/animal-56.png",
group3));
            group3.Items.Add(new SampleDataItem("Group-3-Item-57",
"图 57",
"检出红色盲",
"Assets/DarkGray.png",
"正常：小鸟，  红色觉异常：不能读",
"Assets/animal-57.png",
group3));
            group3.Items.Add(new SampleDataItem("Group-3-Item-58",
"图 58",
"检出红色盲、部分红色弱",
"Assets/LightGray.png",
"正常：奔马，  红色觉异常：不能读",
"Assets/animal-58.png",
group3));
            group3.Items.Add(new SampleDataItem("Group-3-Item-59",
"图 59",
"检出绿色盲",
"Assets/LightGray.png",
"正常：燕子，  绿色觉异常：不能读",
"Assets/animal-59.png",
group3));
            group3.Items.Add(new SampleDataItem("Group-3-Item-60",
"图 60",
"检出绿色盲、部分绿色弱",
"Assets/MediumGray.png",
"正常：母鸡，  绿色觉异常：不能读",
"Assets/animal-60.png",
group3));
            group3.Items.Add(new SampleDataItem("Group-3-Item-61",
"图 61",
"检出蓝（紫）色盲",
"Assets/LightGray.png",
"正常：飞鸭，  蓝（紫）色觉异常：不能读",
"Assets/animal-61.png",
group3));
            group3.Items.Add(new SampleDataItem("Group-3-Item-62",
"图 62",
"检出蓝（紫）色盲、部分蓝（紫）色弱",
"Assets/DarkGray.png",
"正常：鸽子，  蓝（紫）色觉异常：不能读",
"Assets/animal-62.png",
group3));
            group3.Items.Add(new SampleDataItem("Group-3-Item-63",
"图 61",
"检出黄色盲",
"Assets/DarkGray.png",
"正常：鹿，  黄色盲：不能读",
"Assets/animal-63.png",
group3));
            group3.Items.Add(new SampleDataItem("Group-3-Item-64",
"图 64",
"检出黄色弱",
"Assets/DarkGray.png",
"正常：蝴蝶，  黄色弱重度：不能读",
"Assets/animal-64.png",
group3));
            group3.Items.Add(new SampleDataItem("Group-3-Item-65",
"图 65",
"检出黄色弱",
"Assets/MediumGray.png",
"正常：牛，  黄色弱轻度：不能读",
"Assets/animal-65.png",
group3));
            group3.Items.Add(new SampleDataItem("Group-3-Item-66",
"图 66",
"鉴别色觉疲劳和隐色盲",
"Assets/LightGray.png",
"正常：大象，  色觉疲劳：开始能读、后又否定，  隐色盲:开始不能读、后可能读",
"Assets/animal-66.png",
group3));
            this.AllGroups.Add(group3);
            #endregion

        }
    }
}
